package com.ysb.hbase.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "ysb.hbase")
@Data
public class HbaseProperties {

    private String quorum;

    private String clientPort;

    private String nodeParent;

    private String rootDir;

    private String keyTabLocal;

    private String krb5ConfLocal;

    private String principal;

    /**
     * 下面四个参数控制HBASE的超时，时间的单位均为毫秒
     * 如果某业务要求单次HBase的读请求延迟不超过1s，
     * 1. operationTimeout 应该设置成1000ms；
     * 2. 如果集群服务正常，基本保证p99的延迟在100ms内，rpcTimeout可以设置为100ms
     * 3. clientPause 使用默认的100ms
     * 4. retriesNum 可以设置稍微大一点，保证在1s内有更多的重试，从而提高请求成功的概率，比如6次。
     */
    private Integer retriesNum;  // 重试次数，hbase默认35。我们默认6

    private Integer rpcTimeout; // 单次RPC请求的超时时间，hbase默认60,000ms。我们默认100ms

    private Integer clientPause;  // 连续两次RPC重试之间的休眠时间，默认为 100ms

    private Integer operationTimeout;  // 单次API的超时时间，默认为 1200,000ms。我们默认1000ms

}
